package apiday01;

/*
    由于String是不变对象，每次修改内容都会创建新的对象，因此用StringBuilder
    字符串内容若做查看操作，建议用String
    字符串内容若需要做频繁修改错误，就用StringBuilder
    StringBuilder的常用方法：
        append():增加内容
        delete():删除部分内容
        replace():替换部分内容
        insert():插入内容
 */
public class StringBuilderDemo {
    public static void main(String[] args) {
        //StringBuilder的创建方式：
        //StringBuilder builder1 = new StringBuilder();//创建一个空字符串
        //StringBuilder builder2 = new StringBuilder("abc");//abc串
        //String str = "abc";
        //StringBuilder builder3 = new StringBuilder(str);//abc串
        //String str2 = builder3.toString();//将builder3转换为String类型
        //System.out.println(str2);
        String str = "好好学习JAVA";
        //复制str的内容到builder中
        StringBuilder builder = new StringBuilder(str);

        //append():追加内容
        builder.append(",为了找个好工作");
        System.out.println(builder);//好好学习JAVA,为了找个好工作

        //replace():替换部分内容(含头不含尾)
        builder.replace(9, 16, "就是为了改变世界");
        System.out.println(builder);//好好学习JAVA,就是为了改变世界

        //delete():删除部分内容(含头不含尾)
        builder.delete(0, 8);//删除下标为0-7的
        System.out.println(builder);//,就是为了改变世界

        //insert():插入内容
        builder.insert(0, "活着");
        System.out.println(builder);//活着,就是为了改变世界

        //reverse():转置
        builder.reverse();
        System.out.println(builder);//界世变改了为是就,着活

        StringBuilder s=new StringBuilder("abc");
        for (int i = 0; i < 10000000; i++) {
            s.append(i);
        }
        System.out.println("执行结束");
    }
}
